package cn.tedu.csmall.product.mapper;

import cn.tedu.csmall.product.pojo.entity.Attribute;
import cn.tedu.csmall.product.pojo.vo.AlbumStandardVO;
import cn.tedu.csmall.product.pojo.vo.AttributeListItemVO;
import cn.tedu.csmall.product.pojo.vo.AttributeStandardVO;
import org.springframework.stereotype.Repository;

import java.util.List;

@Repository
public interface AttributeMapper {

    /**
     * 向属性表插入数据
     * @param attribute 属性对象数据
     * @return
     */
    int insert(Attribute attribute);

    /**
     * 根据id删除属性表数据
     * @param id 被删除的数据的id
     * @return
     */
    int deleteById(Long id);

    /**
     * 根据若干id批量删除属性表数据
     * @param ids 被删除的数据的id的集合
     * @return
     */
    int deleteByIds(List<Long> ids);

    /**
     * 根据id修改属性表信息
     * @param attribute 需要被修改属性对象
     * @return
     */
    int updateById(Attribute attribute);

    /**
     * 统计属性表数据数量
     * @return 数据表的数据数量
     */
    int count();


    /**
     * 根据名称统计数据数量
     * @return
     */
    int countByName(String name);

    /**
     * 根据类别id统计数据数量
     * @return
     */
    int countByTemplateId(Long templateId);

    /**
     * 根据id获取属性表详情
     * @return
     */
    AttributeStandardVO getAttributeStandardVO(Long id);

    /**
     * 根据属性模板查询列表
     */
    List<AttributeListItemVO> list(Long templateId);
}
